<?php

/** 
* 基础函数文件 
* @author      alvin 作者 
* @version     1.0 版本号
*/

//
//      ┏┛ ┻━━━━━┛ ┻┓
//      ┃　　　　　　 ┃
//      ┃　　　━　　　┃
//      ┃　┳┛　  ┗┳　┃
//      ┃　　　　　　 ┃
//      ┃　　　┻　　　┃
//      ┃　　　　　　 ┃
//      ┗━┓　　　┏━━━┛
//        ┃　　　┃   神兽保佑
//        ┃　　　┃   代码无BUG！
//        ┃　　　┗━━━━━━━━━┓
//        ┃　　　　　　　    ┣┓
//        ┃　　　　         ┏┛
//        ┗━┓ ┓ ┏━━━┳ ┓ ┏━┛
//          ┃ ┫ ┫   ┃ ┫ ┫
//          ┗━┻━┛   ┗━┻━┛

require_once(APP_PATH . '/Common/Common/file.php');
require_once(APP_PATH. '/Common/Common/view.php');
require_once(APP_PATH. '/Common/Common/send.php');
require_once(APP_PATH. '/Common/Common/md5handle.php');
require_once(APP_PATH. '/Common/Common/auth.php');
require_once(APP_PATH. '/Common/Common/cache.php');

/**
 * 打印数组1
 * @param type $data
 */
function p($data){
    echo '<hr><pre>'.print_r($data,true).'<pre><hr>';
   
}

/**
 * 打印数组2
 * @param type $data
 */
function pp($data){
    header("content-type:text/html;charset=utf-8");
     // 定义样式
    $str='<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;background-color: #F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';
    // 如果是boolean或者null直接显示文字；否则print
    if (is_bool($data)) {
        $show_data=$data ? 'true' : 'false';
    }elseif (is_null($data)) {
        $show_data='null';
    }else{
        $show_data=print_r($data,true);
    }
    $str.=$show_data;
    $str.='</pre>';
    echo $str;
}

/**
 * 定义逻辑处理层名称为Logic:
 * @param type $name
 * @return type
 */
function logic($name){
    return D($name, 'Logic');
}

/**
 * 获取当前访问的设备类型
 * @return integer 1：其他  2：iOS  3：Android
 */
function getDeviceType(){
    //全部变成小写字母
    $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
    $type = 1;
    //分别进行判断
    if(strpos($agent, 'iphone')!==false || strpos($agent, 'ipad')!==false){
        $type = 2;
    } 
    if(strpos($agent, 'android')!==false){
        $type = 3;
    }
    return $type;
}

/**
 * 敏感词汇过滤
 * @param: $str string 需要过滤的字符串
 * @param: $name string 敏感词字段
 * @return: array
 */
function checkWords($data,$str='',$name = 'name'){
    //读取词库
     $words = M($data)->select();
     $hei = array_column($words, $name);
    //拼接正则
     $blacklist="/".implode("|",$hei)."/i";

     if(preg_match_all($blacklist, $str, $matches)){
        $blacklist = str_replace($matches[0],'*',$str);
        return $blacklist;
     } else {
        return $str;
     }
}

/**
 * 返回信息
 * @param type $data 数据
 * @param type $reason 信息
 * @param type $code 错误码
 * @return type
 */
function responseInfo($data = '',$reason,$code){
        $result = array(
                    'data' => $data,
                    'reason' => $reason,           
                    'error_code' => $code // 0 为成功  1为错误
        );
        return $result;
}

/**
 * 获取数据字典
 * @param string $key      //键值，方便查找数据
 * @param string $fileName //字典文件名 目录Common/Dict/
 * @return mixed
 */
function getDict( $fileName = '',$key = '') {
	static $_dictFileCache  =   array();
	$file = APP_PATH . 'Common' . DS . 'Dict' . DS . $fileName . '.php';
	if (!file_exists($file)){
		unset($_dictFileCache[$fileName]);
		return null;
	}
	if(!$key && !empty($_dictFileCache[$fileName])) return $_dictFileCache[$fileName];
	if ($key && isset($_dictFileCache[$fileName][$key])) return $_dictFileCache[$fileName][$key];
	$data = require_once $file;
	$_dictFileCache[$fileName] = $data;
	return $key ? $data[$key] : $data;
}

